/**
 * @brief 看门狗通用接口，其他不同类型的看门狗均从这个模块继承
 * @version 1.0
 * @date 2018-3-5
 * @author 宋炜
 */

#ifndef __DOG_BASE_HPP__
#define __DOG_BASE_HPP__

#include "timer.hpp"
class dog_base
{
protected:
	CTimer                     m_timer;          // 计时器
	std::function< void () >   on_dead;          // 计时超时响应
public:
	/**
	 * @brief 喂狗操作
	 */
	void feed(){ m_timer.Start( -1 , true ); }
	/**
	 * @brief 设置喂狗时间
	 */
	void intval( long i ){ if( i >= 0 ) m_timer( i ); }
	/**
	 * @brief 读取喂狗时间
	 */
	long intval(){ return m_timer(); }
};


#endif
